import axios from 'axios'
import { BASE_URL } from './url'

import { getToken, removeToken } from './auth'

//创建axios的配置文件，里面配置baseURL路径
const config = {
    baseURL: BASE_URL
}



const instance = axios.create(config)

//添加请求拦截器
instance.interceptors.request.use(config => {
    //判断请求 url 路径
    const { url } = config
    //请求中包含user的都需要请求头，除了 登录页面 和 注册页面
    if (url.startsWith('/user') && !url.startsWith('/user/login') && !url.startsWith('/user/registered')) {
        //添加请求头
        config.headers.Authorization = getToken()
    }
    return config
})

//添加响应拦截器
//判断返回值中的状态码
//如果是400，标示token超时或异常，直接移除token
instance.interceptors.response.use(response => {
    const { status } = response.data
    if (status === 400) {
        //此时说明token失效，直接移除 token 就可以
        removeToken()
    }
    return response 
})

export { instance }